package LeetCodeHot100;

import java.util.jar.JarEntry;

/**
 *  11.乘最多水的容器
 *  给定一个长度为 n 的整数数组 height 。有 n 条垂线，第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。
 *
 *  思路： 这种固定边界的问题，可以考虑使用双指针解决，左右两指针，然后依次递进， 取最大值就行。
 *        比如左短右长的情况，  那左i就往右移
 *        比如左长右短的情况，那右j就往左移
 *        总之，就是要求出当前的水桶最大容量。
 */
public class LeetCode11 {
    public int maxArea(int[] height) {
        int i = 0,j = height.length-1;
        int res =0;
        // 左右指针依次匹配
        while (i < j){
            int tmp = 0;
            if(height[i] <= height[j]){
                tmp = (j-i) * height[i];
                i++;
            }else if(height[i] > height[j]){
                tmp = (j-i) * height[j];
                j--;
            }
            res = Math.max(tmp,res);
        }
        return res;
    }

    public static void main(String[] args) {
        int[] test = {1,2,1};
        LeetCode11 l1 = new LeetCode11();
        int i = l1.maxArea(test);
        System.out.println(i);
    }
}
